Algoritmo de Dijkstra | ||
---|---|---|
![]() Ejecución del algoritmo de Dijkstra | ||
Tipo | Algoritmo de búsqueda | |
Problema que resuelve | Problema del camino más corto | |
Estructura de datos | Grafo | |
Creador | Edsger Dijkstra | |
Fecha | 1959 | |
Clase de complejidad | P | |
Tiempo de ejecución | ||
Peor caso | ||
El algoritmo de Dijkstra, también llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto, dado un vértice origen, hacia el resto de los vértices en un grafo que tiene pesos en cada arista. Su nombre alude a Edsger Dijkstra, científico de la computación de los Países Bajos que lo concibió en 1956 y lo publicó por primera vez en 1959.[1][2]
La idea subyacente en este algoritmo consiste en ir explorando todos los caminos más cortos que parten del vértice origen y que llevan a todos los demás vértices; cuando se obtiene el camino más corto desde el vértice origen hasta el resto de los vértices que componen el grafo, el algoritmo se detiene. Se trata de una especialización de la búsqueda de costo uniforme y, como tal, no funciona en grafos con aristas de coste negativo (al elegir siempre el nodo con distancia menor, pueden quedar excluidos de la búsqueda nodos que en próximas iteraciones bajarían el costo general del camino al pasar por una arista con costo negativo).[3]